#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "patient.h"
                                                               /*SAISIR*/
void saisir_patient(Patient *P)
{
printf("donner le nom\n");
scanf("%s",P->nom);
printf("donner le prenom\n");
scanf("%s",P->prenom);
printf("donner le sex\n");
scanf("%s",P->sex);
printf("donner le role\n");
scanf("%s",P->role);
printf("donner le cin\n");
scanf("%ld",&(P->cin));
printf("donner le age\n");
scanf("%d",&(P->age));

}
                                                               /*ENREGISTRER*/
void enregistrer_patient(char fichier_patient[],Patient *P,int *n_patient)
{
FILE *f;
f=fopen(fichier_patient,"ab");
if(f!=NULL)
{
 if((*n_patient)<MAX)
  {
 saisir_patient(P);
 fwrite(P,sizeof(Patient),1,f);
 (*n_patient)++;
  }
}
else
{
printf("erreur lors de l'ouverture du fichier_patient\n");
}
fclose(f);
}
                                                                  /*AFFICHER*/
void afficher_patient(char fichier_patient[],Patient P,long int cin)
{
FILE*f;

f=fopen(fichier_patient,"rb");
if(f!=NULL)
{
	fread(&P,sizeof(Patient),1,f);
   do  
  {
        if(cin==P.cin)
        {
        printf("nom:%s|prenom:%s|sex:%s|role:%s|cin:%ld|age:%d|identifiant:%d\n",P.nom,P.prenom,P.sex,P.role,P.cin,P.age,P.id_patient);
        }
  }
  while(((fread(&P,sizeof(Patient),1,f))!=0)&&(feof(f)!=1));
}
else
{
printf("erreur lors de l'ouverture du fichier_patient");
}
fclose(f);
}

                                                                   /*AFFICHER FICHIER*/
void afficher_liste_patient(char fichier_patient[])
{
FILE*f;
Patient P;
f=fopen(fichier_patient,"rb");
if(f!=NULL)
{
		strcpy(P.nom," " ) ;
		strcpy(P.prenom," " ) ;
                strcpy(P.sex," " ) ;
		P.cin=0 ;
		P.age=0 ;
                P.id_patient=0 ; 
   fread(&P,sizeof(Patient),1,f);
   do
  {
   printf("nom:%s | prenom:%s | sex:%s | role:%s | cin:%ld | age:%d | identifiant:%d\n",P.nom,P.prenom,P.sex,P.role,P.cin,P.age,P.id_patient);
  }
   while(((fread(&P,sizeof(Patient),1,f))!=0)&&(feof(f)!=1));
}
else
{
printf("erreur lors de l'ouverture du fichier_patient");
}
fclose(f);
}
                                                                      /*RECHERCHER*/
int recherche_patient(char fichier_patient[],Patient P,long int cin)
{
FILE*f;
f=fopen(fichier_patient,"rb");
if(f!=NULL)
{
	fread(&P,sizeof(Patient),1,f);
   do  
  {
        if(cin==P.cin)
        {
        return 1;
        }
  }
  while(((fread(&P,sizeof(Patient),1,f))!=0)&&(feof(f)!=1));
}
else
{
printf("erreur lors de l'ouverture du fichier_patient");
}
fclose(f);
}

                                                                       /*SUPPRIMER*/
void supprimer_patient( char fichier_patient[],long int cin)
{
    char tmp[]="tmp.txt";
    FILE *f ;
    FILE *t ;
    Patient P;

    f=fopen(fichier_patient,"rb") ;
    t=fopen(tmp,"wb") ;

    if (f!= NULL && t!=NULL)
     {
      while(fread(&P,sizeof(Patient),1,f)!=0)
       {
          if( cin!=P.cin)
            {
             fwrite(&P,sizeof(Patient),1,t) ;
            }
       }
     }

   
   printf(" cin  %ld supprimé\n",cin );
   

     fclose(f) ;
     fclose(t) ;

     f=fopen(fichier_patient,"wb") ;
     t=fopen(tmp,"rb") ;

     while(fread (&P,sizeof(Patient),1,t)!=0)
     {fwrite(&P,sizeof(Patient),1,f) ;}

     fclose(f) ;
     fclose(t) ;

}


                                                                        /*INISIALISER*/
void init_patient(char fichier_patient[])
{
FILE*f;
f=fopen(fichier_patient,"wb");
if(f!=NULL)
{
  printf("la liste est initialiser\n");
}           
else
{
printf("erreur lors de l'ouverture du fichier_patient\n");
}
fclose(f);
}

